/** 商品分类数据管理 */
import { defineStore } from "pinia"
import {
    getBannerList,
    addBanner,
    delBanner,
    editBanner
} from "../api/bannersApi"

import { ElMessage } from "element-plus";
// 声明store
const useBannerStore = defineStore("banners", {
    state: () => {
        return {
            bannerList: [],
        }
    },
    getters: {

    },
    actions: {
        GET_BANNERLIST(list) {
            this.bannerList = list
        },
        // 获取数据
        getBannerListAction() {
            getBannerList().then(res => {
                if (res.code === 200) {
                    console.log(res, "获取轮播图数据")
                    // 同步数据
                    this.GET_BANNERLIST(res.list)
                }
            })
        },
        // 新增
        addBannerAction(banenrForm) {
            // 上传图片，需要将普通表单数据转换成formData对象
            const formData = new FormData()
            for (let key in banenrForm) {
                // 将表单数据添加到formData对象中
                formData.append(key, banenrForm[key])
            }
            addBanner(formData).then(res => {
                console.log(res, "添加轮播图结果")
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "新增轮播图成功"
                    })
                    // 重新获取数据
                    this.getBannerListAction();
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },

        // 编辑
        editBannerAction(banenrForm) {
            // 上传图片，需要将普通表单数据转换成formData对象
            const formData = new FormData()
            for (let key in banenrForm) {
                // 将表单数据添加到formData对象中
                formData.append(key, banenrForm[key])
            }
            editBanner(formData).then(res => {
                console.log(res, "编辑轮播图结果")
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "编辑轮播图成功"
                    })
                    // 重新获取数据
                    this.getBannerListAction();
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },

        // 删除
        delBannerAction(id) {
            delBanner(id).then(res => {
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "删除轮播图成功"
                    })
                    // 重新获取数据
                    this.getBannerListAction();
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
    }
})
// 导出
export default useBannerStore